import 'package:sp_util/sp_util.dart';

class AppSp {
  // token
  static const _accessToken = "accessToken";

  // 是否首次下载app
  static const _isFirstDownload = "isFirstDownload";

  // 获取、清空个人信息
  static const _userInfo = "userInfo";

  // 是否存在设备唯一id
  static const _deviceId = "deviceId";

  // imToken
  static const  _imToken  = 'imToken';
  /// 填充、清空token
  /// 登录和退出登录的时候需要调用
  static Future<bool>? putAccessToken(String accessToken) {
    return SpUtil.putString(_accessToken, accessToken);
  }

  /// 获取token
  static String getAccessToken() {
    return SpUtil.getString(_accessToken, defValue: null) ?? "";
  }

  /// 填充、清空个人信息
  /// 登录和退出登录的时候需要调用
  /// 换成个人信息的model
  static Future<bool>? putUserInfo(String accessToken) {
    return SpUtil.putString(_userInfo, accessToken);
  }

  /// 获取个人信息的model
  static String getUserInfo() {
    return SpUtil.getString(_userInfo, defValue: null) ?? "";
  }

  /// 同意过声明标志置false
  static Future<bool>? putIsFirstDownload() {
    return SpUtil.putBool(_isFirstDownload, false);
  }

  /// 获取是否还未同意过声明
  static bool getIsFirstDownload() {
    return SpUtil.getBool(_isFirstDownload, defValue: true) ?? true;
  }

  /// 获取设备唯一id
  static String getDeviceId() {
    return SpUtil.getString(_deviceId, defValue: null) ?? "";
  }

  /// 填充设备唯一id
  static Future<bool>? putDeviceId(String deviceId) {
    return SpUtil.putString(_deviceId, deviceId);
  }

  /// 获取imToken
  static String getImToken() {
    return SpUtil.getString(_imToken) ?? '';
  }

  /// 填充imToken
  static  Future<bool>? setImToken(String imToken) {
    return SpUtil.putString(_imToken, imToken);
  }
}
